package com.leadership.training.entity.project;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import com.leadership.training.entity.trainee.Trainee;


/**
 * 问卷调查结果
 * 
 * @author Rockett
 *
 */
@Entity
@Table(name = "t_training_survey_result")
public class TrainingSurveyResult {
    
	/**
	 * ID
	 */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    /**
     * 项目-期-课程
     */
    @ManyToOne(fetch = FetchType.LAZY, optional = true)
    private ProjectPhaseCourse projectPhaseCourse;
    /**
     * 项目-期
     */
    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    private ProjectPhase projectPhase;
    
    /**
     * 学员
     */
    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    private Trainee trainee;
    
    /**
     * 问题
     */
    private String question;
    /**
     * 问题关键字
     */
    private String keywords;
    /**
     * 回答
     */
    private String inputValue;
    
	/**
	 * phase-当期项目问卷问题 course-课程问卷问题
	 */
	private String level;

	/**
	 * 课程类型 （管理类--default/专业通识类）
	 */
	private String category;

	/**
	 * 问题输入类型 text-建议 select-选择
	 */
	private String type;
    
    /**
	 * @return the question
	 */
	public String getQuestion() {
		return question;
	}


	/**
	 * @param question the question to set
	 */
	public void setQuestion(String question) {
		this.question = question;
	}


	/**
     * The default constructor
     */
    public TrainingSurveyResult() {
    }
    
    /**
     * 
     * @param trainee
     * @param projectPhase
     * @param question
     * @param inputValue
     */
    public TrainingSurveyResult(Trainee trainee, ProjectPhase projectPhase, String question, String inputValue,String level, String category, String type,String keywords) {
    	this.trainee = trainee;
    	this.projectPhase = projectPhase;
    	this.question = question;
    	this.inputValue = inputValue;
    	this.level=level;
    	this.category=category;
    	this.type=type;
    	this.keywords=keywords;
    }
    
    /**
     * 
     * @param trainee
     * @param projectPhase
     * @param projectPhaseCourse
     * @param question
     * @param inputValue
     */
    public TrainingSurveyResult(Trainee trainee, ProjectPhase projectPhase, ProjectPhaseCourse projectPhaseCourse, String question, String inputValue,String level, String category, String type,String keywords) {
    	this.trainee = trainee;
    	this.projectPhase = projectPhase;
    	this.projectPhaseCourse = projectPhaseCourse;
    	this.question = question;
    	this.inputValue = inputValue;
    	this.level=level;
    	this.category=category;
    	this.type=type;
    	this.keywords=keywords;
    }

    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }


    /**
     * @param id the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }




	/**
	 * @return the trainee
	 */
	public Trainee getTrainee() {
		return trainee;
	}


	/**
	 * @param trainee the trainee to set
	 */
	public void setTrainee(Trainee trainee) {
		this.trainee = trainee;
	}





	/**
	 * @return the projectPhaseCourseId
	 */
	public ProjectPhaseCourse getProjectPhaseCourse() {
		return projectPhaseCourse;
	}


	/**
	 * @param projectPhaseCourseId the projectPhaseCourseId to set
	 */
	public void setProjectPhaseCourse(ProjectPhaseCourse projectPhaseCourse) {
		this.projectPhaseCourse = projectPhaseCourse;
	}


	/**
	 * @return the projectPhaseId
	 */
	public ProjectPhase getProjectPhase() {
		return projectPhase;
	}


	/**
	 * @param projectPhaseId the projectPhaseId to set
	 */
	public void setProjectPhase(ProjectPhase projectPhase) {
		this.projectPhase = projectPhase;
	}


	/**
	 * @return the inputValue
	 */
	public String getInputValue() {
		return inputValue;
	}


	/**
	 * @param inputValue the inputValue to set
	 */
	public void setInputValue(String inputValue) {
		this.inputValue = inputValue;
	}


	/**
	 * @return the level
	 */
	public String getLevel() {
		return level;
	}


	/**
	 * @param level the level to set
	 */
	public void setLevel(String level) {
		this.level = level;
	}


	/**
	 * @return the category
	 */
	public String getCategory() {
		return category;
	}


	/**
	 * @param category the category to set
	 */
	public void setCategory(String category) {
		this.category = category;
	}


	/**
	 * @return the type
	 */
	public String getType() {
		return type;
	}


	/**
	 * @param type the type to set
	 */
	public void setType(String type) {
		this.type = type;
	}


	/**
	 * @return the keywords
	 */
	public String getKeywords() {
		return keywords;
	}


	/**
	 * @param keywords the keywords to set
	 */
	public void setKeywords(String keywords) {
		this.keywords = keywords;
	}







}